import { isFunction } from '@/utils/validate'

/**
 * 性别枚举
 * 未知
 * 男
 * 女
 */
const GenderEnum = {

    UNKNOWN: {
        label: '未知',
        value: 0
    },
    MALE: {
        label: '男',
        value: 1
    },
    FEMALE: {
        label: '女',
        value: 2
    },

    /**
     * 获取所有的枚举
     * @return {*[]}枚举数组
     */
    allEnums() {
        let enums = []
        for (let key in GenderEnum) {
            if (!isFunction(GenderEnum[key])) {
                enums.push(GenderEnum[key])
            }
        }
        return enums
    },
    /**
     * 根据 label 获取 枚举
     * @param label label
     * @return {*} 对应的枚举
     */
    getEnumByLabel(label) {
        for (let key in GenderEnum) {
            if (GenderEnum[key].label === label) {
                return GenderEnum[key]
            }
        }
        return {}
    },

    /**
     * 根据 label 获取 枚举
     * @param value value
     * @return {*} 对应的枚举
     */
    getEnumByValue(value) {
        for (let key in GenderEnum) {
            if (GenderEnum[key].value === value) {
                return GenderEnum[key]
            }
        }
        return {}
    }
}
// 设置当前对象只读
Object.freeze(GenderEnum)

export default GenderEnum
